package com.clever.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clever.bean.model.OnlineUser;

import java.util.List;

import com.clever.bean.shopping.Logistics;

/**
 * 订单物流服务接口
 *
 * @Author xixi
 * @Date 2024-04-08 11:11:31
 */
public interface LogisticsService {

    /**
     * 分页查询列表
     *
     * @param pageNumber 页码
     * @param pageSize   每页记录数
     * @param orderId    订单id
     * @return Page<Logistics>
     */
    Page<Logistics> selectPage(Integer pageNumber, Integer pageSize, String orderId);

    /**
     * 根据订单物流id获取订单物流
     *
     * @param id 订单物流id
     * @return Logistics 订单物流id信息
     */
    Logistics selectById(String id);

    /**
     * 根据订单id获取列表
     *
     * @param orderId 订单id
     * @return List<Logistics> 订单物流列表
     */
    List<Logistics> selectListByOrderId(String orderId);

    /**
     * 新建订单物流
     *
     * @param logistics  订单物流实体信息
     * @param onlineUser 当前登录用户
     * @return Logistics 新建后的订单物流信息
     */
    Logistics create(Logistics logistics, OnlineUser onlineUser);

    /**
     * 修改订单物流
     *
     * @param logistics  订单物流实体信息
     * @param onlineUser 当前登录用户
     * @return Logistics 修改后的订单物流信息
     */
    Logistics update(Logistics logistics, OnlineUser onlineUser);

    /**
     * 保存订单物流
     *
     * @param logistics  订单物流实体信息
     * @param onlineUser 当前登录用户
     * @return Logistics 保存后的订单物流信息
     */
    Logistics save(Logistics logistics, OnlineUser onlineUser);

    /**
     * 根据订单物流id删除信息
     *
     * @param id         订单物流id
     * @param onlineUser 当前登录用户
     */
    void delete(String id, OnlineUser onlineUser);

    /**
     * 根据订单物流id列表删除信息
     *
     * @param ids        订单物流id列表
     * @param onlineUser 当前登录用户
     */
    void deleteBatchIds(List<String> ids, OnlineUser onlineUser);

    /**
     * 根据订单id删除
     *
     * @param orderId    订单id
     * @param onlineUser 当前登录用户
     */
    void deleteByOrderId(String orderId, OnlineUser onlineUser);

}
